As technology becomes increasingly more sophisticated, consumers rely on software, hardware, and scientific methods more and more. For example, most consumers own a ubiquitous personal computer (PC), and many own wireless devices such as personal digital assistants (PDAs). Moreover, nearly all businesses utilize computers in one form or another in conducting their business, whether local, national or global in nature. Thus, technology users must be able to rely on the devices that they use every day.
Developments in communications and data storage introduced error correction coding (ECC) algorithms that may detect errors such as random bit error, burst error and/or erasure of data. Some of these algorithms may, in some cases, correct for one or more of these detected error types. Such ECC algorithms are frequently used in applications where dynamic random access memory (DRAM) is used. Unfortunately, while error correction is advantageous and desirable, it usually comes at a significant latency in returning correct data. Thus, most users needing reliable access to data must sacrifice processing speed for accuracy.